#include <set>
#include <iostream>

using namespace std;

#define N 10
#define OUT(map_a, msg) do{ \
    cout << msg; \
    for (auto i = map_a.begin(); i != map_a.end(); i++) cout << *i  << "  "; \
    cout << endl; \
}while(0)

int main(int argc, char const *argv[])
{
    /*****************************************************************************************************
     * multiset 容器
     * ---------------------------------------------------------------------------------------------------
     * 与set基本相同， 唯一不同之处在于， multiset可以存储多个相同的元素
     *****************************************************************************************************/
    // -----------------------------------------------
    // --- 定义 ----
    // -----------------------------------------------
    multiset<int> stu_a;
    multiset<int> stu_b{1, 1, 2, 1, 3};


    // -----------------------------------------------
    // --- 增 ----
    // -----------------------------------------------
    multiset<int> stu_c;
    stu_c.insert(100);
    stu_c.insert(100);
    OUT(stu_c, "multiset新增: ");

    // -----------------------------------------------
    // --- 删 ----
    // -----------------------------------------------
    stu_c.erase(100);
    OUT(stu_c, "multiset删除: ");


    // -----------------------------------------------
    // --- 改 ----
    // -----------------------------------------------

    // -----------------------------------------------
    // --- 查 ----
    // -----------------------------------------------


    /*****************************************************************************************************
     * 成员函数
     * ---------------------------------------------------------------------------------------------------
     * array.begin()        返回：随机访问迭代器  首元素位置指针   
     * 
     *****************************************************************************************************/
    
    // array.begin() 
    // -----------------------------------------------
    
    return 0;
}
